package com.zdkj.subway.st.fegin;

import com.zdkj.common.core.constant.SecurityConstants;
import com.zdkj.common.core.constant.ServiceNameConstants;
import com.zdkj.common.core.util.R;
import com.zdkj.subway.st.dto.in.SwStInputPassengerWorkTicketDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;

import java.util.List;

/**
 * @support: zdkj
 * @author: cuilei
 * @version: 1.0
 * @Date: 2020-06-16 13:53
 * @Description: <p>
 *
 * </p>
 */
@FeignClient(contextId = "subwayStmService", value = ServiceNameConstants.SUBWAY_STM_SERVICE)
public interface SubwayStmService {
    /**
     * 车站确认线网车票回收通知
     *
     * @param idList
     * @param from
     * @return
     */
    @PostMapping("/swsttickethand/noticeConfirm")
    R ticketRecoverNoticeConfirm(@RequestBody List<Integer> idList,
                                 @RequestHeader(SecurityConstants.FROM) String from);

    /**
     * 通知完善无效票信息
     *
     * @param swStInputPassengerWorkTicketDTOList
     * @param from
     * @return
     */
    @PostMapping("/swstinputpassengerworkticket/completeConfirm")
    R ticketRecoverCompleteConfirm(@RequestBody List<SwStInputPassengerWorkTicketDTO> swStInputPassengerWorkTicketDTOList,
                               @RequestHeader(SecurityConstants.FROM) String from);

    /**
     * 批量添加无效票生产信息到乘客事务退换票模块
     *
     * @param swStInputPassengerWorkTicketDTOList
     * @return
     */
    @PostMapping("/swstinputpassengerworkticket/innerTickerSave")
    R inputPassengerWorkTicketSave(@RequestHeader(SecurityConstants.FROM) String from,
                        @RequestBody List<SwStInputPassengerWorkTicketDTO> swStInputPassengerWorkTicketDTOList);

    /**
     * 批量添加无效票生产信息到乘客事务退换票模块
     *
     * @param swStInputPassengerWorkTicketDTOList
     * @return
     */
    @PostMapping("/swstinputpassengerworkticket/innerTickerUpdateBach")
    R inputPassengerWorkTicketUpdateBach(@RequestHeader(SecurityConstants.FROM) String from,
                                   @RequestBody List<SwStInputPassengerWorkTicketDTO> swStInputPassengerWorkTicketDTOList);
    /**
     * 通知完善无效票信息
     *
     * @param
     * @param from
     * @return
     */
    @PostMapping("/swstinputpassengerworkticket/innerTicketUpdate")
    R InputPassengerWorkTicketUpdate(@RequestBody SwStInputPassengerWorkTicketDTO swStInputPassengerWorkTicketDTO,
                               @RequestHeader(SecurityConstants.FROM) String from);
}
